Cryptext x64 0.7 - erster vollständiger moderner Entschlüsselungspfad
==================================================================

ACHTUNG: 0.7 verschlüsselt weiterhin wie 0.6 und kann dabei bei nicht gesetzter
Checkbox die Klartext-Quelldatei nach erfolgreichem Commit löschen. Nur mit
entbehrlichen Testkopien arbeiten.

Neu in 0.7:
- Auswahl einer Datei mit Endung .$#! startet automatisch den modernen
  CT64FILE-v1-Entschlüsselungspfad. Andere Dateien werden wie 0.6 verschlüsselt.
- Die verschlüsselte .$#!-Quelle wird bei der Entschlüsselung IMMER behalten;
  die Checkbox wird für diesen Rückweg noch absichtlich ignoriert.
- Zielname ist der Dateiname ohne die letzte .$#!-Endung.
- Während der Entschlüsselung wird versteckt Zielname.temp mit CREATE_NEW erzeugt.
- Vor jeder Ausgabe werden Header/Dateigröße und anschließend die verschlüsselten
  Metadaten authentifiziert. Ein falsches Passwort erzeugt deshalb keine Temp-Datei.
- Alle Datenrecords werden AES-256-GCM-authentifiziert und entschlüsselt.
- Nach FlushFileBuffers wird die Temp-Datei geschlossen und erneut nur lesend
  geöffnet. Der verschlüsselte Quellstrom wird zurückgespult, PBKDF2 wird erneut
  aus dem gespeicherten Header ausgeführt, alle GCM-Records werden ein zweites Mal
  geprüft und der rekonstruierte Klartext wird byteweise mit der Temp-Datei verglichen.
- Erst danach erfolgt MoveFileExW WRITE_THROUGH: Zielname.temp -> Zielname.
- Creation/LastAccess/LastWrite und die v1-restaurierbaren Attribute werden aus den
  authentifizierten Metadaten wiederhergestellt.
- Vorhandene Ziel- oder Temp-Dateien werden niemals überschrieben.
- Reader akzeptiert die in v1 erlaubten Chunkgrößen 64 KiB..64 MiB; als lokale
  DoS-Grenze werden derzeit höchstens 10.000.000 gespeicherte PBKDF2-Iterationen
  akzeptiert. Der Writer bleibt bei 600.000.

Empfohlener Rundlauf:
1. Frische Kopie dummy-1 Byte.bin mit 0.7 verschlüsseln, Checkbox AUS.
   Danach sollte nur dummy-1 Byte.bin.$#! vorhanden sein.
2. Programm erneut starten, dasselbe Passwort eingeben und diese .$#! auswählen.
   Danach müssen dummy-1 Byte.bin UND dummy-1 Byte.bin.$#! vorhanden sein.
3. Den rekonstruierten Klartext byteweise/Hash gegen die ursprüngliche Testkopie
   vergleichen. Dasselbe für 0 Byte, exakt 4 MiB, 4 MiB+1 und die >300-MB-Datei.
4. Falsches Passwort testen: Meldung Authentifizierung fehlgeschlagen, keine
   Klartextdatei und keine übriggebliebene .temp-Datei.
5. Ein Byte in einer Kopie der .$#! verändern und Entschlüsselung testen: sie muss
   ebenfalls sicher scheitern und die verschlüsselte Quelle behalten.
6. Vor dem Entschlüsseln eine Datei mit dem erwarteten Klartext-Zielnamen anlegen:
   Cryptext muss abbrechen und darf sie nicht überschreiben.

Legacy Cryptext 3.x ist in 0.7 noch NICHT aktiv; eine alte .$#!-Datei endet in der
Formatmeldung und bleibt unverändert.
